package com.hospital.diagnosis.module.service;

import com.hospital.common.dto.diagnosis.module.DiagnosisApplicationDTO;
import com.hospital.common.dto.diagnosis.module.DiagnosisRecordDTO;
import com.hospital.common.pojo.TDiagnosisRecord;
import com.hospital.common.vo.data.simulation.InspectionReportVo;
import com.hospital.diagnosis.module.vo.DiagnosisRecordTitleVo;
import com.hospital.diagnosis.module.vo.DiagnosisVo;

import java.util.List;


public interface DiagnosisRecordService
{
    List<DiagnosisRecordTitleVo> getDiagnosisRecordListByPatientId(Long patientId, Integer pageNum, Integer pageSize);

    Integer getDiagnosisRecordCountByPatientId(Long patientId);

    List<DiagnosisRecordTitleVo> getDiagnosisRecordListByDoctorId(Long doctorId, Integer pageNum, Integer pageSize);

    Integer getDiagnosisRecordCountByDoctorId(Long doctorId);

    TDiagnosisRecord getDiagnosisRecordById(Long id);

    Boolean addDiagnosisRecord(Long doctorId,DiagnosisRecordDTO diagnosisRecord);

    Boolean addDiagnosisApplication(Long doctorId,DiagnosisApplicationDTO diagnosis);

    Integer getDiagnosisApplicationCountByPatientId(Long patientId,String doctorName,String startTime,String endTime);

    List<DiagnosisVo> getDiagnosisApplicationByPatientId(Long patientId,String doctorName,String startTime,String endTime, Integer pageNum, Integer pageSize);

    List<InspectionReportVo> getDiagnosisResultByPatientId(Long patientId);

    Integer getDiagnosisRecordCountByName(Long patientId,Long doctorId,String patientName, String doctorName, String startTime, String endTime);

    List<DiagnosisRecordTitleVo> getDiagnosisRecordListByName(Long patientId,Long doctorId,String patientName, String doctorName, String startTime, String endTime, Integer pageNum, Integer pageSize);
}
